<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;
use think\Db;

use app\admin\model\CategoryModel;
class Category extends AdminController
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        //实例化
        $category = new CategoryModel();
        // 获取分类信息
        $list = $category->getAdminCate();
        return view('category/list',[
            'title'=>'分类列表',
            'list'=>$list
        ]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        return view('category/add',[
            'title'=>'新增分类'
        ]);;
    }

    /**
     * 显示指定的表单页
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function add($id)
    { 
        return view('category/add',[
            'title'=>'新增分类',
            'id'=>$id
        ]);;
    }
    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
         // 新增数据
        $data = $request->post();
        if ( empty($data['id']) ) {
            $data['pid'] = 0;
            $data['path'] = '0,'; 
        }else{

            $data['pid'] = $data['id'];
            $res = db('category')->field('path')->find($data['id']);
            $data['path'] = $res['path'].$data['id'];
            $data =array_diff_key($data, ['id' => "id"]);
        }
        
        $row = db('category')->insert($data);
        if ($row) {
            $this->success('添加完成','admin/Category/index');
        }else{
            $this->error('添加失败');
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {   
        
     
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {

    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {

    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {   
        // 判断该分类是否有子类
        $res = db('category')->where('pid','=',$id)->select();

        if ( empty($res)) {
            $result = db('category')->delete($id);
            $info['status'] = true;
            $info['id'] = $id;
            $info['info'] = 'ID为'.$id.'的分类删除成功!';
        }else{
            $info['status'] = false;
            $info['id'] = $id;
            $info['info'] = '请先删除子类';
        }

        // echo json_encode($result);
        return json($info);
    }
}
